package com.ddxcloud.common.constants.enums;


/**
 * @author Mr.Lin
 * @description 我得事项 表单类型枚举
 * @date 2020/8/26 9:49
 */
public enum ItemColumnTypeEnum {

    /**
     * 基础类型
     */
    STRING(0, "String"),
    INTEGER(1, "integer"),
    LONG(2, "long"),
    DOUBLE(3, "double"),
    DATA_STREAM(30, "数据流URL(处理方式请检查响应头是否包含文件名)"),

    /**
     * 图片
     */
    IMG_STREAM(31, "图片数据流URL"),
    IMG_BASE64_URL(20, "图片类型(base64的URL字符串)"),
    IMG_URL(5, "图片类型(URL字符串)"),
    IMG_URL_allow_download(2005, "图片类型(URL字符串) 并允许下载"),

    /**
     * 视频
     */
    VIDEO_BASE64_URL(25, "视频类型(base64的URL字符串)"),
    VIDEO_URL(7, "视频类型(URL字符串)"),

    /**
     * 文档
     */
    WORD_DOC_BASE64_URL(21, "word文档(base64的URL字符串)"),
    WORD_DOC_URL(12, "word文档(URL字符串)"),

    EXCEL_BASE64_URL(22, "excel文档(base64的URL字符串)"),
    EXCEL_URL(14, "excel文档(URL字符串)"),

    PPT_BASE64_URL(23, "ppt文档(base64的URL字符串)"),
    PPT_URL(16, "ppt文档(URL字符串)"),

    PDF_BASE64_URL(24, "pdf文档(base64的URL字符串)"),
    PDF_URL(18, "pdf文档(URL字符串)"),
    PDF_URL_allow_download(20018, "pdf文档(URL字符串) 并允许下载"),

    /**
     * 子表单
     */
    SUBFORM(9, "子表单"),

    /**
     * 按钮类型
     */
    BUTTON(10, "普通按钮(跳H5按钮)"),
    BUTTON_REFRESH(1001, "刷新按钮"),
    BUTTON_IMG_STREAM(1003, "点击预览图片按钮,返回图片数据流-对应图片格式31"),
    BUTTON_IMG_base64Url(1004, "点击预览图片按钮,返回图片url-对应图片格式20"),
    CANCEL_BUTTON(1005,"取消按钮"),
    ;


    /**
     * 类型编码
     */
    private Integer code;
    /**
     * 类型名称
     */
    private String name;

    ItemColumnTypeEnum(Integer code, String name) {
        this.code = code;
        this.name = name;
    }

    public Integer getCode() {
        return code;
    }

    public String getName() {
        return name;
    }

    public static ItemColumnTypeEnum getEnum(int code) {
        for (ItemColumnTypeEnum e : ItemColumnTypeEnum.values()) {
            if (code == (e.getCode())) {
                return e;
            }
        }
        return null;
    }

    public static String getNameByCode(int code) {
        for (ItemColumnTypeEnum m : ItemColumnTypeEnum.values()) {
            if (m.getCode() == (code)) {
                return m.name;
            }
        }
        return null;
    }

    public static Integer getCodeByName(String name) {
        for (ItemColumnTypeEnum m : ItemColumnTypeEnum.values()) {
            if (m.getName().equalsIgnoreCase(name)) {
                return m.getCode();
            }
        }
        return null;
    }


}
